/*
 * iPersonaPuerta.h
 *
 *  Created on: 07/07/2014
 *      Author: migue
 */

#ifndef IPERSONAPUERTA_H_
#define IPERSONAPUERTA_H_

#include "../defines.h"
#include "../ipc/ColaMensajes.h"
#include "../ipc/ColaInterfaz.h"

class iPersonaPuerta {
public:
	iPersonaPuerta(int numPuerta);

	int esperarArrivoDePersona();


	/**
	 * numTicket = -1 ; Peticion de ingreso al parque negada
	 */
	void respuestaDeIngreso(int numTicket, int idPersona);


	int esperarPartidaDePersona();

	void confirmarPartida(int idPersona);

	int idPuerta();

	int idBroker();

	void tipo(Tipos::TipoDePuerta tipo);

	virtual ~iPersonaPuerta();
private:

	void lanzarCorteDeColas();

	void comprobarIDSalida();
	void comprobarIDEntrada();

	ColaMensajes _cEnvio;
	ColaInterfaz _cRecibo;

	int _numPuerta;
	int _mtypePuerta;

	int _idBroker;
};

#endif /* IPERSONAPUERTA_H_ */
